Programacion AVR Atmega168pa

Contenido

Como programar un microcontrolador Atmega168pa usando un programador USBasp y avrdude.

Atmega168pa Datasheet

Instalar AVRdude

Para instalar la suite de AVRdude lo hacemos instalando los siguientes paquetes usando el siguiente comando (en Debian):

sudo apt-get install avrdude avrdude-doc binutils-avr avr-libc gcc-avr gdb-avr
Descripcion

Los pasos para programar el microcontrolador son los siguientes:

Para compilar nuestro código en C usaremos el siguiente comando:

avr-gcc -mmcu=atmega168pa -Os -o led_blink.elf led_blink.c

Para generar el .hex usamos el siguiente comando:

avr-objcopy -O ihex -R .eeprom led_blink.elf led_blink.hex

Para flashear el microcontrolador usamos el siguiente comando:

avrdude -c usbasp -p m168pa -U flash:w:led_blink.hex:i
Conexiones

Las conexiones del programador al microcontrolador serán las siguientes (podemos usar el conector de 10 pines o el de 6 pines):

Para comprobar que las conexiones están bien realizadas podemos ejecutar el siguiente comando:

avrdude -c usbasp -p m168pa -v

Deberíamos de obtener una salida como la siguiente:

Troubleshooting

Si tenemos un problema con la frecuencia de oscilación (si los delay tardan mas de lo que hemos programado), podemos intentar configurar los fuses del microcontrolador:

Atmega168pa frecuencia de oscilacion lenta

Tags

AVR | microcontrolador | atmega